<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.prime.com.tr/ui"
      xmlns:f="http://java.sun.com/jsf/core">
    <body>
        <ui:composition template="./../plantilla/plantillaGeneral.xhtml">
            <ui:define name="title">
                #{general.admUsuarios}
            </ui:define>
            <ui:define name="content">
                <h:form id="frmUsuario">
                    <p:growl id="growl" />
                    <h:panelGrid id="pngTitulo001" columns="1">
                        <h:outputText id="outTitutlo001" value="#{general.admUsuarios}" styleClass="texto_subtitulo"/>
                    </h:panelGrid>
                    <p:panel id="pnlAdmUsuarios" header="#{general.admUsuarios}">
                        <p:panel id="pnlBusquedaGrupo" header="#{general.filtrosBusqueda}">
                            <h:panelGrid id="pngFiltro" columns="8">
                                <h:outputText id="outFiltro" value="#{general.filtro}:" styleClass="texto_negrita_derecha"/>
                                <h:selectOneMenu id="slmFiltro" value="#{usuarioOP.filtroBusqueda}" disabled="#{usuarioOP.renderDetalle}">
                                    <f:selectItem id="sliCodigo" itemValue="C" itemLabel="#{general.codigo}"/>
                                    <f:selectItem id="sliNombre" itemValue="N" itemLabel="#{general.nombre}"/>
                                    <f:selectItem id="sliCI" itemValue="CI" itemLabel="#{general.ci}"/>
                                    <p:ajax id="supFiltros" event="change" update="pngFiltrosBusqueda"
                                            actionListener="#{usuarioOP.inicializarFiltros}" />
                                </h:selectOneMenu>
                                <h:panelGroup id="pngFiltrosBusqueda">
                                    <h:inputText id="intCodUsu" value="#{usuarioOP.codigoBusqueda}" title="#{general.codigo}"
                                                 rendered="#{usuarioOP.filtroBusqueda eq 'C'}" disabled="#{usuarioOP.renderDetalle}"
                                                 maxlength="9" >
                                        <f:convertNumber for="intCodPagina" integerOnly="true" />
                                        <p:ajax event="change" update="pngFiltrosBusqueda"/>
                                    </h:inputText>
                                    <h:inputText id="intNomUsu" value="#{usuarioOP.nombreBusqueda}" title="#{general.nombre}"
                                                 rendered="#{usuarioOP.filtroBusqueda eq 'N'}" disabled="#{usuarioOP.renderDetalle}"
                                                 maxlength="500">
                                        <p:ajax event="change" update="pngFiltrosBusqueda"/>
                                    </h:inputText>
                                    <h:inputText id="intCIUsu" value="#{usuarioOP.ciBusqueda}" title="#{general.ci}"
                                                 rendered="#{usuarioOP.filtroBusqueda eq 'CI'}" disabled="#{usuarioOP.renderDetalle}"
                                                 maxlength="10">
                                        <p:ajax event="change" update="pngFiltrosBusqueda"/>
                                    </h:inputText>
                                </h:panelGroup>
                                <p:commandButton id="btnBuscar" value="#{general.buscar}" update="frmUsuario,pnlAdmUsuarios,pnlBusquedaResultado,growl"
                                                 actionListener="#{usuarioOP.buscar}" disabled="#{usuarioOP.renderDetalle}"
                                                 immediate="true" />
                            </h:panelGrid>
                        </p:panel>
                        <p:spacer height="10"/>
                        <p:panel id="pnlBusquedaResultado" header="#{general.resultadoBusqueda}">
                            <p:dataTable id="dtUsuarios" var="usuarios" value="#{usuarioOP.listaUsuario}"
                                         emptyMessage="#{general.noDatos}" rows="10" paginator="true" >
                                <f:facet name="header">
                                    <h:outputText id="outHeadGrupo" value="#{general.usuarios}"/>
                                </f:facet>
                                <p:column headerText="#{general.codigo}">
                                    <h:outputText value="#{usuarios.noPersona}"/>
                                </p:column>
                                <p:column style="width: 150px">
                                    <f:facet name="header">
                                        <h:outputText value="#{general.nombre}"/>
                                    </f:facet>
                                    <h:outputLabel id="NombreUsuario" value="#{usuarios.nombre}"/>
                                </p:column>
                                <p:column style="width: 50px">
                                    <f:facet name="header">
                                        <h:outputText value="#{general.ci}"/>
                                    </f:facet>
                                    <h:outputText id="CedulaUsuario" value="#{usuarios.noCedula}"/>
                                </p:column>
                                <p:column style="width: 100px">
                                    <f:facet name="header">
                                        <h:outputText value="#{general.correo}"/>
                                    </f:facet>
                                    <h:outputText id="MailUsuario" value="#{usuarios.email}"/>
                                </p:column>
                                <p:column>
                                    <f:facet name="header">
                                        <h:outputText value="#{general.usuario}"/>
                                    </f:facet>
                                    <h:outputText id="UserUsuario" value="#{usuarios.usuario}"/>
                                </p:column>
                                <p:column>
                                    <f:facet name="header">
                                        <h:outputText value="#{general.grupo}"/>
                                    </f:facet>
                                    <h:outputLabel id="NombreGrupo" value="#{usuarios.tgrupo.nombre}"/>
                                </p:column>
                                <p:column style="width: 60px">
                                    <f:facet name="header">
                                        <h:outputText value="#{general.sucursal}"/>
                                    </f:facet>
                                    <h:outputText id="NombreSucursal" value="#{usuarios.tsucursal.descSucursal}"/>
                                </p:column>
                                <p:column id="clmAcciones" style="width: 150px">
                                    <f:facet id="fctClmAcciones" name="header">
                                        <h:outputText id="outClmAcciones" value="#{general.acciones}" title="#{general.titleAcciones}"/>
                                    </f:facet>
                                    <div id="divAcciones" align="center">
                                        <p:commandButton id="btnAccionMod" actionListener="#{usuarioOP.seleccionaRegistro}" value="#{general.modificar}"
                                                         update="frmUsuario,pnlProcesos" title="#{general.titleBtnModificar}" disabled="#{usuarioOP.renderDetalle}">
                                            <f:attribute name="usuarios" value="#{usuarios}"/>
                                        </p:commandButton>
                                        <p:commandButton id="btnEliminar" actionListener="#{usuarioOP.eliminarUsuario}" value="#{general.eliminar}"
                                                         update="pnlBusquedaResultado,frmUsuario,growl" title="#{general.titleBtnEliminar}" disabled="#{usuarioOP.renderDetalle}">
                                            <f:attribute name="usuarios" value="#{usuarios}"/>
                                        </p:commandButton>

                                    </div>
                                </p:column>
                            </p:dataTable>
                        </p:panel>
                        <h:panelGrid columns="1">
                            <p:spacer height="5px"/>
                            <p:commandButton id="btnNuevo" value="#{general.nuevo}" actionListener="#{usuarioOP.nuevo}" update="frmUsuario,pnlProcesos"
                                             disabled="#{usuarioOP.renderDetalle}"/>
                            <p:spacer height="5px"/>
                        </h:panelGrid>
                        <p:panel id="pnlProcesos" header="#{general.usuario}" rendered="#{usuarioOP.renderDetalle}">
                            <p:fieldset legend="#{general.buscar} #{general.usuarios}" rendered="#{usuarioOP.renderDetalle}">
                                <p:panel id="pnlBusquedaPer" header="#{general.filtrosBusqueda}">
                                    <h:panelGrid id="pngFiltroPer" columns="8">
                                        <h:outputText id="outFiltroPer" value="#{general.filtro}:" styleClass="texto_negrita_derecha"/>
                                        <h:selectOneMenu id="slmFiltroPer" value="#{usuarioOP.busquedaPersona.filtroBusqueda}"
                                                         disabled="#{usuarioOP.busquedaPersona.desactivarEmpleado}">
                                            <f:selectItem id="sliNombrePer" itemValue="N" itemLabel="#{general.nombre}"/>
                                            <f:selectItem id="sliCIPer" itemValue="CI" itemLabel="#{general.ci}"/>
                                            <p:ajax id="supFiltrosPer" event="change" update="pngFiltroPer"
                                                    actionListener="#{usuarioOP.busquedaPersona.inicializarFiltros}" />
                                        </h:selectOneMenu>
                                        <h:panelGroup id="pngFilBusPer">
                                            <h:inputText id="intNomUsuPer" value="#{usuarioOP.busquedaPersona.nombreBusqueda}" title="#{general.nombre}"
                                                         rendered="#{usuarioOP.busquedaPersona.filtroBusqueda eq 'N'}"
                                                         maxlength="500" disabled="#{usuarioOP.busquedaPersona.desactivarEmpleado}">
                                                <p:ajax event="change" update="pngFiltroPer"/>
                                            </h:inputText>
                                            <h:inputText id="intCIUsuPer" value="#{usuarioOP.busquedaPersona.ciBusqueda}" title="#{general.ci}"
                                                         rendered="#{usuarioOP.busquedaPersona.filtroBusqueda eq 'CI'}"
                                                         maxlength="10" disabled="#{usuarioOP.busquedaPersona.desactivarEmpleado}">
                                                <p:ajax event="change" update="pngFiltroPer"/>
                                            </h:inputText>
                                        </h:panelGroup>
                                        <p:commandButton id="btnBusPer" value="#{general.buscar}" update="frmUsuario,dttEmpleado,growl"
                                                         actionListener="#{usuarioOP.busquedaPersona.buscar}"
                                                         immediate="true" disabled="#{usuarioOP.busquedaPersona.desactivarEmpleado}"/>
                                    </h:panelGrid>
                                </p:panel>
                                <h:panelGrid columns="1">
                                    <p:spacer height="5px"/>
                                </h:panelGrid>
                                <p:dataTable id="dttEmpleado" value="#{usuarioOP.busquedaPersona.listaEmpleadoBasicos}" var="emp"
                                             emptyMessage="#{general.noDatos}" paginator="true" rows="10">
                                    <p:column style="width: 50px ">
                                        <f:facet name="header">
                                            <h:outputText value="#{general.no}"/>
                                        </f:facet>
                                        <h:outputText value="#{emp.noPersona}"/>
                                    </p:column>
                                    <p:column style="width: 520px">
                                        <f:facet name="header">
                                            <h:outputText value="#{general.nombre}"/>
                                        </f:facet>
                                        <h:outputText value="#{emp.nombreC}"/>
                                    </p:column>
                                    <p:column style="width: 90px">
                                        <f:facet name="header">
                                            <h:outputText value="#{general.ci}"/>
                                        </f:facet>
                                        <h:outputText value="#{emp.noCedula}"/>
                                    </p:column>
                                    <p:column style="width: 70px">
                                        <f:facet name="header">
                                            <h:outputText value="#{general.acciones}"/>
                                        </f:facet>
                                        <p:commandButton value="#{general.seleccionar}" action="#" ajax="true" oncomplete="focoComponente('frmUsuario:txtUsuario')"
                                                         actionListener="#{usuarioOP.seleccionarEmpleado}" immediate="true"
                                                         update="frmUsuario" 
                                                         disabled="#{usuarioOP.busquedaPersona.desactivarEmpleado}">
                                            <f:attribute name="empleado" value="#{emp}"/>
                                        </p:commandButton>
                                    </p:column>
                                </p:dataTable>
                            </p:fieldset>
                            <h:panelGrid columns="1">
                                <p:spacer height="5px"/>

                                <p:fieldset id="filUsuario" rendered="#{usuarioOP.renderUsuario}" legend="Datos del Usuario">
                                    <table border="0">
                                        <tbody>
                                            <tr>
                                                <td width="50px"><h:outputText value="#{general.nombre}: " styleClass="texto_negrita_derecha"/></td>
                                                <td colspan="3"><h:inputText id="txtUsuario" value="#{usuarioOP.busquedaPersona.usuario.nombre}" maxlength="500" size="130"
                                                                             required="true" requiredMessage="#{general.mensajeRequeridoNombre}"/><h:outputLabel value="*" style="color: red"/>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td width="50px"><h:outputText value="#{general.ci}: " styleClass="texto_negrita_derecha"/></td>
                                                <td><h:inputText id="txtCedula" value="#{usuarioOP.busquedaPersona.usuario.noCedula}" maxlength="10" size="30"
                                                                 required="true" requiredMessage="#{general.mensajeRequeridoCI}"/><h:outputLabel value="*" style="color: red"/>
                                                </td>
                                                <td width="50px"><h:outputText value="#{general.correo}: " styleClass="texto_negrita_derecha"/></td>
                                                <td> <h:inputText id="txtMail" value="#{usuarioOP.busquedaPersona.usuario.email}" maxlength="50" size="30"/></td>
                                            </tr>
                                            <tr>
                                                <td width="50px"><h:outputText value="#{general.usuario}: " styleClass="texto_negrita_derecha"/></td>
                                                <td><h:inputText id="txUser" value="#{usuarioOP.busquedaPersona.usuario.usuario}" maxlength="50" size="30" required="true"
                                                                 requiredMessage="#{general.mensajeRequeridousu}"/><h:outputLabel value="*" style="color: red"/>
                                                </td>
                                                <td width="50px"><h:outputText value="#{general.clave}: " styleClass="texto_negrita_derecha"/></td>
                                                <td><p:password id="txtClave" value="#{usuarioOP.busquedaPersona.usuario.clave}" maxlength="250" size="30" required="true"
                                                                requiredMessage="#{general.mensajeRequeridoClave}" minLength="4" /><h:outputLabel value="*" style="color: red"/>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td width="50px"><h:outputText value="#{general.grupo}: " styleClass="texto_negrita_derecha"/></td>
                                                <td><h:selectOneMenu id="cbGrupo" value="#{usuarioOP.grupo}" style="width: 180px">
                                                        <f:selectItems value="#{usuarioOP.grupos}" />
                                                        <p:ajax event="change" update="pngDt"/>
                                                    </h:selectOneMenu>
                                                    <h:outputLabel value="*" style="color: red"/>
                                                </td>
                                                <td width="50px">
                                                    <h:outputText value="#{general.sucursal}: " styleClass="texto_negrita_derecha"/>
                                                </td>
                                                <td>
                                                    <h:selectOneMenu id="cbSucursal" value="#{usuarioOP.sucursal}" style="width: 180px">
                                                        <f:selectItems value="#{usuarioOP.sucursales}" />
                                                        <p:ajax event="change" update="pngDt"/>
                                                    </h:selectOneMenu><h:outputLabel value="*" style="color: red"/>
                                                </td>
                                            </tr>
                                        </tbody>
                                    </table>
                                </p:fieldset>
                                <p:spacer height="5px"/>
                                <p:fieldset id="filUsuarioProceso" legend="#{general.asignacionProcesosOP}" rendered="#{usuarioOP.renderUsuario}">
                                    <p:fieldset>
                                        <table>
                                            <tr>
                                                <td><h:outputText value="#{general.gestion}: " styleClass="texto_negrita_derecha"/></td>
                                                <td><h:selectOneMenu value="#{usuarioOP.idUnidad}" style="width: 150px">
                                                        <f:selectItems value="#{usuarioOP.unidades}"/>
                                                        <p:ajax update="slcArea,slcCentro" listener="#{usuarioOP.seleccionarUnidad()}"/>
                                                    </h:selectOneMenu> </td>
                                                <td><h:outputText value="#{general.area}: " styleClass="texto_negrita_derecha"/></td>
                                                <td>
                                                    <h:selectOneMenu id="slcArea" value="#{usuarioOP.idUnidadHija}" style="width: 150px">
                                                        <f:selectItems value="#{usuarioOP.areas}"/>
                                                        <p:ajax update="slcCentro" listener="#{usuarioOP.seleccionarArea}"/>
                                                    </h:selectOneMenu>
                                                </td>
                                                <td>
                                                    <h:outputText value="#{general.procesos}: " styleClass="texto_negrita_derecha"/>
                                                </td>
                                                <td>
                                                    <h:selectOneMenu id="slcCentro" value="#{usuarioOP.idCd}" style="width: 150px">
                                                        <f:selectItems value="#{usuarioOP.centrosUnidad}"/>
                                                        <p:ajax update="frmUsuario,slcCentro"/>
                                                    </h:selectOneMenu>
                                                </td>
                                                <td><h:outputText value="#{general.estado}: " styleClass="texto_negrita_derecha"/></td>
                                                <td>
                                                    <h:selectOneMenu id="slmEst" value="#{usuarioOP.estadoCD}" style="width: 100px">
                                                        <f:selectItem id="sliEstAct" itemValue="A" itemLabel="#{general.activo}"/>
                                                        <f:selectItem id="sliEstInact" itemValue="I" itemLabel="#{general.inactivo}"/>
                                                        <p:ajax update="frmUsuario"/>
                                                    </h:selectOneMenu>
                                                </td>
                                            </tr>
                                        </table>
                                    </p:fieldset>
                                    <p:fieldset>
                                        <p:dataTable id="dtbProcesos" value="#{usuarioOP.listaProcesos}" var="proceso"
                                                     emptyMessage="No hay procesos asignados" rows="10" paginator="true" >
                                            <f:facet name="header">
                                                <h:outputText value="Procesos asiganados al Usuario"/>
                                            </f:facet>
                                            <p:column headerText="#{general.proceso}" style="width: 400px">
                                                <h:outputText value="#{proceso.tcentrodistribucion.descripcion}"/>
                                            </p:column>
                                            <p:column headerText="#{general.estado}" style="width: 50px">
                                                <h:outputText value="#{general.activo}" rendered="#{proceso.estado eq 'A'}"/>
                                                <h:outputText value="#{general.inactivo}" rendered="#{proceso.estado eq 'I'}"/>
                                            </p:column>
                                            <p:column headerText="#{general.acciones}" style="width: 150px">
                                                <p:commandButton value="Activar" actionListener="#{usuarioOP.activar}" update="dtbProcesos,frmUsuario,grow1">
                                                    <f:attribute value="#{proceso}" name="proceso"/>
                                                </p:commandButton>
                                                <p:commandButton value="#{general.eliminar}" actionListener="#{usuarioOP.eliminarRes}" update="dtbProcesos,frmUsuario,grow1">
                                                    <f:attribute value="#{proceso}" name="proceso"/>
                                                </p:commandButton>
                                            </p:column>
                                        </p:dataTable>
                                    </p:fieldset>
                                </p:fieldset>
                                <p:spacer height="5px"/>
                            </h:panelGrid>
                            <p:commandButton id="btnGuardar" value="#{general.guardar}" actionListener="#{usuarioOP.guardar}" ajax="false"/>
                            <p:commandButton value="#{general.cancelar}" actionListener="#{usuarioOP.cancelar}" ajax="false" immediate="true"/>
                        </p:panel>
                    </p:panel>
                </h:form>
            </ui:define>

        </ui:composition>

    </body>
</html>
